package util.Persistencia;

import util.Util;

public class DAOFactory {
    
    // tipo da fabrica
    public static String TIPO_JDBC = "JDBC";
    public static String TIPO_HIBERNATE = "Hibernate";
    public static String TIPO_ARQUIVO = "Arquivo";
    private String tipoFabrica = TIPO_HIBERNATE;
    
    // singleton
    private static DAOFactory instance = new DAOFactory();
    public static DAOFactory getInstance() {
        if (instance == null)
            instance = new DAOFactory();
        return instance;
    }
    
    public IDAOJPA obterDAO(Class classe) {
        String nome = classe.getName();
        nome = nome.replaceAll("cdp", "cgd.ObjetoDAO");
        nome = nome + "DAO" + this.getTipoFabrica();
        IDAOJPA dao = null;
        try {
            Object o = Class.forName(nome).newInstance();
            dao = (IDAOJPA) o;
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return dao;
    }
    
    public String getTipoFabrica() {
        return tipoFabrica;
    }

    public void setTipoFabrica(String tipoFabrica) {
        this.tipoFabrica = tipoFabrica;
    }
}
